let nums = [1, 3, 4, 5, 6, 8, 12, 14, 16];
let target = 5;

let binarySearch = (arr, target) => {
    let left = 0;
    let right = nums.length - 1;
    while (left <= right) {
        let mid = Math.floor((left + right) / 2);
        if (nums[mid] === target) {
            return mid;
        } else if (nums[mid] < target) {
            left = mid + 1;
        } else if (nums[mid] > target) {
            right = mid - 1;
        }
    }
    return -1;
}

console.log(binarySearch(nums, target))